#include <iostream>
#include <vector>
#include <queue>
using namespace std;

const int N = 2e5 + 10;
vector<vector<int>> ve(N);
vector<int> ans;
int in[N];

int main() {
    int n,m;
    cin >> n >> m;
    for(int i = 1;i <= m;i++)
    {
        int u,v;
        cin >> u >> v;
        ve[u].push_back(v);
        in[v]++;
    }
    queue<int> q;
    for(int i = 1;i <= n;i++)
    {
        if(in[i] == 0)
        {
            q.push(i);
        }
    }

    while(q.size())
    {
        int x = q.front();
        ans.push_back(x);
        q.pop();
        for(auto& e : ve[x])
        {
            --in[e];
            if(in[e] == 0)
            {
                q.push(e);
            }
        }
    }

    if(ans.size() == n)
    {
        cout << ans[0] ;
        for(int i = 1;i < n;i++)
        {
            cout << " " << ans[i];
        }
    }
    else {
        cout << -1 << endl;
    }
}
// 64 位输出请用 printf("%lld")